﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Data;
using Negocio;

namespace Presentacion
{
    public partial class About : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void subirpdf_click(object sender, EventArgs e)
        {
            if (fileupload.HasFile)
            {
                try
                {
                    if (fileupload.PostedFile.ContentType == "application/pdf")
                    {
                        string pdf = Path.GetFileName(fileupload.FileName);
                        fileupload.SaveAs(Server.MapPath("~/temp/") + pdf);
                        string rutapdf = Server.MapPath("~/temp/" + pdf);
                        string nombrepdf = Path.GetFileName(rutapdf);
                        if (Negocio.AccesoLogica.insertarPDF(nombrepdf, rutapdf))
                        {
                            lblstatus.Text = "Estado: Se ha almacenado el archivo correctamente";
                            foreach (var f in Directory.GetFiles(Server.MapPath("~/temp/")))
                                File.Delete(f);
                        }
                        else
                            lblstatus.Text = "Estado: Error al intentar almacenar el archivo pdf";

                    }
                    else
                    {
                        lblstatus.Text = "Estado: Solo se aceptan archivos .PDF";
                    }
                }
                catch (Exception ex)
                {
                    lblstatus.Text = "Estado: El archivo se pudo almacenar," + ex.Message;
                }
            }
        }

        protected void linkdescarga_click(object sender, EventArgs e)
        {
            DataTable dt = AccesoLogica.descargarPDF(Int32.Parse(txtID.Text));
            try
            {
                string x = dt.Rows[0][0].ToString();
                download(dt);
            }
            catch
            {
                lblstatus.Text = "Estado: No existe ese id.";
            }

        }

        private void download(DataTable dt)
        {
            Byte[] bytes = (Byte[])dt.Rows[0]["Datos"];
            Response.Buffer = true;
            Response.Charset = "";
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.ContentType = dt.Rows[0]["Tipo"].ToString();
            Response.AddHeader("content-disposition", "attachment;filename=" + dt.Rows[0]["Nombre"].ToString());
            Response.BinaryWrite(bytes);
            Response.Flush();
            Response.End();
        }
    }
}
